package com.dog.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.framework.core.model.PageResult;
import com.dog.modules.system.domain.SysParams;
import com.dog.modules.system.api.query.SysParamsQuery;
import com.dog.modules.system.api.vo.SysParamsVO;

import java.util.List;

/**
* @author liuxk
* @description 针对表【sys_params(参数管理)】的数据库操作Service
* @createDate 2024-01-30 14:47:29
*/
public interface SysParamsService extends IService<SysParams> {

    PageResult<SysParamsVO> page(SysParamsQuery query);

    void save(SysParamsVO vo);

    void update(SysParamsVO vo);

    void delete(List<Long> idList);

    /**
     * 根据paramKey，获取字符串值
     *
     * @param paramKey 参数Key
     */
    String getString(String paramKey);

    /**
     * 根据paramKey，获取整型值
     *
     * @param paramKey 参数Key
     */
    int getInt(String paramKey);

    /**
     * 根据paramKey，获取布尔值
     *
     * @param paramKey 参数Key
     */
    boolean getBoolean(String paramKey);

    /**
     * 根据paramKey，获取对象值
     *
     * @param paramKey  参数Key
     * @param valueType 类型
     */
    <T> T getJSONObject(String paramKey, Class<T> valueType);
}
